package com.bbva.kyfb.kyfbdto.firmas.fachada.v01;

import java.io.Serializable;

import javax.validation.constraints.Pattern;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * Tipo de dato de entrada del detalle de un fichero u orden.
 *
 * @author xe35008
 * @version 1.0
 */
@XmlRootElement
public class InfoComponentRequest implements Serializable{
	
	/** The Constant serialVersionUID. */
	private static final long serialVersionUID = 1L;

	/** Identificador de la orden. */
	private String sIdOrdenFirmas;
	
	/** Tipo de orden o fichero. */
	private String sCodTipoOrden;
	
	/** aplicacion origen. */
	private String sCodOrigen;
	
	/** Flag para mostrar o no las ordenes. */
	private String sMostrarOrdenes;
	
	/** Idioma en el que se desea mostrar el detalle. */
	private String sIdioma;
	
	
	/**
	 * Instantiates a new info component request.
	 */
	public InfoComponentRequest() {}


	/**
	 * Gets the s id orden firmas.
	 *
	 * @return the sIdOrdenFirmas
	 */
	@NotEmpty
	public String getsIdOrdenFirmas() {
		return sIdOrdenFirmas;
	}


	/**
	 * Sets the s id orden firmas.
	 *
	 * @param sIdOrdenFirmas the sIdOrdenFirmas to set
	 */
	public void setsIdOrdenFirmas(String sIdOrdenFirmas) {
		this.sIdOrdenFirmas = sIdOrdenFirmas;
	}


	/**
	 * Gets the s cod tipo orden.
	 *
	 * @return the sCodTipoOrden
	 */
	@NotEmpty
	@Length(min=3,max=3)
	public String getsCodTipoOrden() {
		return sCodTipoOrden;
	}


	/**
	 * Sets the s cod tipo orden.
	 *
	 * @param sCodTipoOrden the sCodTipoOrden to set
	 */
	public void setsCodTipoOrden(String sCodTipoOrden) {
		this.sCodTipoOrden = sCodTipoOrden;
	}


	/**
	 * Gets the s cod origen.
	 *
	 * @return the sCodOrigen
	 */
	@NotEmpty
	@Length(min=4,max=4)
	public String getsCodOrigen() {
		return sCodOrigen;
	}


	/**
	 * Sets the s cod origen.
	 *
	 * @param sCodOrigen the sCodOrigen to set
	 */
	public void setsCodOrigen(String sCodOrigen) {
		this.sCodOrigen = sCodOrigen;
	}


	/**
	 * Gets the s mostrar ordenes.
	 *
	 * @return the sMostrarOrdenes
	 */
	@NotEmpty
	@Length(min=1,max=1)
	@Pattern(regexp="S|N")
	public String getsMostrarOrdenes() {
		return sMostrarOrdenes;
	}


	/**
	 * Sets the s mostrar ordenes.
	 *
	 * @param sMostrarOrdenes the sMostrarOrdenes to set
	 */
	public void setsMostrarOrdenes(String sMostrarOrdenes) {
		this.sMostrarOrdenes = sMostrarOrdenes;
	}


	/**
	 * Gets the s idioma.
	 *
	 * @return the sIdioma
	 */
	@Length(min=3,max=3)
	@Pattern(regexp="\\p{Upper}{3}")
	public String getsIdioma() {
		return sIdioma;
	}


	/**
	 * Sets the s idioma.
	 *
	 * @param sIdioma the sIdioma to set
	 */
	public void setsIdioma(String sIdioma) {
		this.sIdioma = sIdioma;
	}


	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "InfoComponentRequest [sIdOrdenFirmas=" + sIdOrdenFirmas
				+ ", sCodTipoOrden=" + sCodTipoOrden + ", sCodOrigen="
				+ sCodOrigen + ", sMostrarOrdenes=" + sMostrarOrdenes
				+ ", sIdioma=" + sIdioma + "]";
	}	
	
}
